package com.lagou.module3.task3;

import java.util.HashMap;
import java.util.Map;
import java.util.Set;

/**
 *
 *
 * 准备一个 HashMap 集合，统计字符串"123,456,789,123,456"中每个数字字符串出现的次数并打印出来。
 *
 *  如：
 *
 *         123 出现了 2 次
 *
 *         456 出现了 2 次
 *
 *         789 出现了 1 次
 *
 */
public class MapTest {

    public static void main(String[] args) {

        //1. 准备一个Map集合
        Map<String, Integer> m1 = new HashMap<>();
        //2. 准备一个String类型的对象描述原始字符串
        String str1 = new String("123,456,789,123,456");
        //3. 使用split方法对原始字符串按照字符串中的逗号","拆分字符串，并在集合中查找
        String[] sArr = str1.split(",");
        // 遍历字符串数组
        for (int i = 0; i < sArr.length; i++){
            //4. 若集合中没有该字符串, 则将该字符串和1组成一个健值对放入集合中
            if (!m1.containsKey(sArr[i])){
                m1.put(sArr[i], 1);
            }
            //5. 若集合中有该字符串，则将该字符串对应的value值+1
            else {
                m1.put(sArr[i], m1.get(sArr[i])+1);
            }
        }
        System.out.println("m1= " + m1);
        //6. 获取Map集合中所有的映射关系组成Set集合并遍历
        Set<Map.Entry<String,Integer>> set = m1.entrySet();
        for (Map.Entry<String,Integer> s: set){
            System.out.println(s);
            System.out.println(s.getKey()+"出现了"+s.getValue()+"次！ ");
        }

    }

}
